<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../general.ent">
  %general-entities;
]>

<sect1 id="ch-system-Python" role="wrap">
  <?dbhtml filename="Python.html"?>

  <sect1info condition="script">
    <productname>Python</productname>
    <productnumber>&python-version;</productnumber>
    <address>&python-url;</address>
  </sect1info>

  <title>Python-&python-version;</title>

  <indexterm zone="ch-system-Python">
    <primary sortas="a-python">python</primary>
  </indexterm>

  <sect2 role="package">
    <title/>

    <para>Python 3 - Высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода. Содержит среду разработки для объектно-ориентированного программирования, написания сценариев, прототипирования крупных программ и разработки полноценных приложений.</para>

    <segmentedlist>
      <segtitle>&buildtime;</segtitle>
      <segtitle>&diskspace;</segtitle>

      <seglistitem>
        <seg>&python-ch6-sbu;</seg>
        <seg>&python-ch6-du;</seg>
      </seglistitem>
    </segmentedlist>

  </sect2>

  <sect2 role="installation">
    <title>Установка пакета Python 3</title>

    <para>Подготовьте пакет Python к компиляции:</para>

<screen><userinput remap="configure">./configure --prefix=/usr       \
            --enable-shared     \
            --with-system-expat \
            --with-system-ffi   \
            --with-ensurepip=yes</userinput></screen>

    <variablelist>
      <title>Значение параметров конфигурации:</title>

    <varlistentry>
      <term><parameter>--with-system-expat</parameter></term>
      <listitem>
        <para>Значение аргумента позволяет установить связь с системной библиотекой
        <application>Expat</application>.</para>
       </listitem>
     </varlistentry>

    <varlistentry>
      <term><parameter>--with-system-ffi</parameter></term>
      <listitem>
        <para>Значение аргумента позволяет установить связь с системной библиотекой
        <application>libffi</application>.</para>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term><parameter>--with-ensurepip=yes</parameter></term>
      <listitem>
        <para>Значение аргумента включает сборку <command>pip</command> и
        <command>setuptools</command> программ для работы с пакетами.</para>
      </listitem>
    </varlistentry>

    </variablelist>

    <para>Скомпилируйте пакет:</para>

<screen><userinput remap="make">make</userinput></screen>

    <para>Для выполнения тестов необходимы TK и X Windows сессия, и они не могут быть выполнены до тех пор,
	 пока пакет не будет переустановлен по инструкциям в книге BLFS.</para>

    <para>Установите пакет:</para>

<screen><userinput remap="install">make install
chmod -v 755 /usr/lib/libpython&python-minor;m.so
chmod -v 755 /usr/lib/libpython3.so
ln -sfv pip3.7 /usr/bin/pip3</userinput></screen>

    <variablelist>
      <title>Значение команд установки:</title>
	<!-- ======  Change 7m if Python minor version changes ======= -->
    <varlistentry>
      <term><command>chmod -v 755 /usr/lib/libpython3.{7m.,}so</command></term>
      <listitem>
        <para>Исправляет установку разрешений для библиотек для совместимости с другими библиотеками.</para>
      </listitem>
    </varlistentry>

    </variablelist>

    <para>При желании установите заранее отформатированную документацию:</para>

<screen><userinput remap="install">install -v -dm755 /usr/share/doc/python-&python-version;/html

tar --strip-components=1  \
    --no-same-owner       \
    --no-same-permissions \
    -C /usr/share/doc/python-&python-version;/html \
    -xvf ../python-&python-version;-docs-html.tar.bz2</userinput></screen>

    <variablelist>
      <title>Значения команд установки документации:</title>

    <varlistentry>
      <term><option>--no-same-owner</option> and --no-same-permissions</term>
      <listitem>
        <para>Гарантирует что установленные файлы будут иметь правильные права владения. Без этих опций, при использовании программы <application>tar</application> при распаковке, будут установлены права на распакованные файлы с указанием владельца пакета.
        </para>
      </listitem>
    </varlistentry>

    </variablelist>

  </sect2>

  <sect2 id="contents-python" role="content">
    <title>Содержимое пакета Python 3</title>

    <segmentedlist>
      <segtitle>Установленные программы</segtitle>
      <segtitle>Установленная библиотека</segtitle>
      <segtitle>Установленные каталоги</segtitle>

      <seglistitem>
        <seg>
          2to3, idle3, pip3, pydoc3, python3, python3-config, and pyvenv
        </seg>
        <seg>
          libpython&python-minor;m.so and libpython3.so
        </seg>
        <seg>
          /usr/include/python&python-minor;m, /usr/lib/python3 and
          /usr/share/doc/python-&python-version;
        </seg>
      </seglistitem>
    </segmentedlist>

    <variablelist>
      <bridgehead renderas="sect3">Краткое описание</bridgehead>
      <?dbfo list-presentation="list"?>
      <?dbhtml list-presentation="table"?>

      <varlistentry id="python-2to3">
        <term><command>2to3</command></term>
        <listitem>
          <para>
           Программа <application>Python</application> которая читает исходный код <application>Python 2.x</application> и применяет ряд исправлений для преобразования в правильный код <application>Python 3.x</application>.
          </para>
          <indexterm zone="ch-system-Python">
            <primary sortas="b-2to3">2to3</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="idle3">
        <term><command>idle3</command></term>
        <listitem>
          <para>
			 	Обёртка для сценария которая открывает графический редактор <application>Python</application>. Для запуска этого сценария убедитесь в том, что установлена программа <application>Tk</application> до запуска Python и модуль Tkinter также был собран.
          </para>
          <indexterm zone="ch-system-Python">
            <primary sortas="b-idle3">idle3</primary>
          </indexterm>
        </listitem>
      </varlistentry>

		<varlistentry id="pip3">
        <term><command>pip3</command></term>
        <listitem>
          <para>
			 	Установщик пакетов для Python. Вы можете использовать pip для установки пакетов из индекса пакетов Python или других индексов.
          </para>
          <indexterm zone="ch-system-Python">
            <primary sortas="b-pip3">pip3</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="pydoc3">
        <term><command>pydoc3</command></term>
        <listitem>
          <para>
            Инструмент <application>Python</application> для работы с документацией.
          </para>
          <indexterm zone="ch-system-Python">
            <primary sortas="b-pydoc3">pydoc3</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="python3">
        <term><command>python3</command></term>
        <listitem>
          <para>
			 	интерпретируемый, интерактивный, объектно-ориентированный язык программирования.
          </para>
          <indexterm zone="ch-system-Python">
            <primary sortas="b-python3">python3</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="pyvenv">
        <term><command>pyvenv</command></term>
        <listitem>
          <para>
			 	создает виртуальные <application>Python</application> среды в целевых каталогах.
          </para>
          <indexterm zone="ch-system-Python">
            <primary sortas="b-pyvenv">pyvenv</primary>
          </indexterm>
        </listitem>
      </varlistentry>

    </variablelist>

  </sect2>

</sect1>
